/**
 * 
 */
package com.yst.metho.web.application.components.listingview;

import nextapp.echo2.app.Button;
import nextapp.echo2.app.ImageReference;
import nextapp.echo2.app.event.ActionEvent;
import nextapp.echo2.app.event.ActionListener;
import nextapp.echo2.app.event.ChangeEvent;
import nextapp.echo2.app.event.ChangeListener;

import com.yst.suivi.data.rights.Right;

/**
 * Class qui represente une action dans une toolbar. L'action doit etre sensible
 * a la selection d'un element pour pouvoir s'activer ou non selon le besoin.
 * 
 * @author perso
 * 
 */
public class ToolbarAction extends Button implements ActionListener, ChangeListener
{
	// Droit associe a l'action utilisateur.
	private Right mRight;

	/**
	 * 
	 */
	public ToolbarAction(Right r)
	{
		super();
		mRight = r;
	}

	/**
	 * @param icon
	 */
	public ToolbarAction(Right r, ImageReference icon)
	{
		super(icon);
		mRight = r;
	}

	/**
	 * @param text
	 * @param icon
	 */
	public ToolbarAction(Right r, String text, ImageReference icon)
	{
		super(text, icon);
		mRight = r;
	}

	/**
	 * @param text
	 */
	public ToolbarAction(Right r, String text)
	{
		super(text);
		mRight = r;
	}

	/**
	 * Methode appelee quand une selection est faite sur un objet pouvant
	 * concerner l'action.
	 * 
	 * @see nextapp.echo2.app.event.ActionListener#actionPerformed(nextapp.echo2.app.event.ActionEvent)
	 */
	public void actionPerformed(ActionEvent e)
	{
	}

	public void stateChanged(ChangeEvent arg0)
	{
	}

	/**
	 * Methode qui retourne vrai uniquement si l'utilisateur a le droit
	 * d'executer la commande.
	 * 
	 * @return
	 */
	public boolean canDo()
	{
		return mRight.canDo();
	}

}
